package ssm.controller;

import com.holiday.springboot2.utils.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ssm.model.entity.VideoOrder;
import ssm.model.request.OrderRequest;
import ssm.service.VideoOrderService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@RestController
@RequestMapping("/api/v1/pri/order")
public class VideoOrderController {

    @Autowired
    private VideoOrderService videoOrderService;

    @RequestMapping("save")
    public JsonData saveOrder(@RequestBody OrderRequest orderRequest, HttpServletRequest request) {
        // OrderRequest orderRequest ：这个参数是用户下单了哪个视频
        // HttpServletRequest request 这个参数是要知道是哪个用户，因为在拦截器里面解析了用户信息，那么通过这个request就能
        // 获取到用户信息，具体能获取到用户什么信息，取决于在生成token的时候放了什么信息
        Integer userId = (Integer) request.getAttribute("user_id");

        int saveRow = videoOrderService.save(userId, orderRequest.getVideoId());
        return saveRow == 0 ? JsonData.buildError("下单失败") : JsonData.buildSuccess("下单成功");

    }

    @GetMapping("list")
    public JsonData listOrder(HttpServletRequest request) {
        // OrderRequest orderRequest ：这个参数是用户下单了哪个视频
        // HttpServletRequest request 这个参数是要知道是哪个用户，因为在拦截器里面解析了用户信息，那么通过这个request就能
        // 获取到用户信息，具体能获取到用户什么信息，取决于在生成token的时候放了什么信息
        Integer userId = (Integer) request.getAttribute("user_id");

        List<VideoOrder> videoOrderList = videoOrderService.listOrderByUserId(userId);
        return JsonData.buildSuccess(videoOrderList);


    }
}
